package com.pe.rimac;

import java.util.ArrayList;
import java.util.List;

import android.database.sqlite.SQLiteCursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Spinner;

import com.pe.rimac.util.BeanValorDescripcion;
import com.pe.rimac.util.RSTextWatcher;

public class OcupanteModuloDatos1Activity extends BaseActivity {

	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vs_ocupante_mod_datos1);
        
        cargarListas();
        
        if(!ocupante.isNew())
        {
        	llenarFormulario();
        }
		
		cargarListeners();
    }

	private void llenarFormulario() {
		selectedSpinner(R.id.cmbTipoPersona, ocupante.getTipo().getValor());		
		flagChekBox(R.id.chkConductorAsegurado, ocupante.isConductorAsegurado());
		selectedSpinner(R.id.cmbTipoDctoIdentidad, ocupante.getTipoDocumento().getValor());
		setTextEditText(R.id.txtOcuNroIdentidad, ocupante.getNroDocumento());
		setTextEditText(R.id.txtOcuNombres, ocupante.getNombres());
		setTextEditText(R.id.txtOcuApePater, ocupante.getApePaterno());
		setTextEditText(R.id.txtOcuApeMater, ocupante.getApeMaterno());
		selectedSexo(ocupante.getSexo().getValor());
		setTextEditText(R.id.txtFechaNac, dateFormat(ocupante.getFecNacimiento()));
		selectedSpinner(R.id.cmbCondicion, ocupante.getCondicion().getValor());
		flagChekBox(R.id.chkHospitalizada, ocupante.isHospitalizada());
		selectedSpinner(R.id.cmbNosocomio, ocupante.getNosocomio().getValor());
	}
	
	@SuppressWarnings("unchecked")
	private void selectedSexo(String valor)
	{
		final Spinner spinner = (Spinner) findViewById(R.id.cmbSexo);
		ArrayAdapter<BeanValorDescripcion> adapter = (ArrayAdapter<BeanValorDescripcion>) 
																		spinner.getAdapter();
		
		for (int i = 0; i < adapter.getCount(); i++) {
			BeanValorDescripcion sexo = adapter.getItem(i);
			if(valor.equals(sexo.getValor()))
			{
				spinner.setSelection(i);
			}
		}
	}

	private void cargarListeners() {
		final Spinner spnOcuTipoPart = (Spinner) findViewById(R.id.cmbTipoPersona);
		spnOcuTipoPart.setOnItemSelectedListener(this);
		
		final Spinner spnOcuTipoDctoIdentidad = (Spinner) findViewById(R.id.cmbTipoDctoIdentidad);
		spnOcuTipoDctoIdentidad.setOnItemSelectedListener(this);
		
		final Spinner spnOcuCondicion = (Spinner) findViewById(R.id.cmbCondicion);
		spnOcuCondicion.setOnItemSelectedListener(this);
		
		final Spinner spnOcuNosocomio = (Spinner) findViewById(R.id.cmbNosocomio);
		spnOcuNosocomio.setOnItemSelectedListener(this);
		
		final Spinner spnOcuSexo = (Spinner) findViewById(R.id.cmbSexo);
		spnOcuSexo.setOnItemSelectedListener(this);
		
		final CheckBox chkConductorAsegurado = (CheckBox) findViewById(R.id.chkConductorAsegurado);
		chkConductorAsegurado.setOnCheckedChangeListener(this);
		
		final CheckBox chkHospitalizada = (CheckBox) findViewById(R.id.chkHospitalizada);
		chkHospitalizada.setOnCheckedChangeListener(this);
		
		final EditText txtOcuNroIdentidad = (EditText) findViewById(R.id.txtOcuNroIdentidad);
		txtOcuNroIdentidad.addTextChangedListener(new RSTextWatcher(txtOcuNroIdentidad, ocupante));
		
		final EditText txtOcuNombres = (EditText) findViewById(R.id.txtOcuNombres);
		txtOcuNombres.addTextChangedListener(new RSTextWatcher(txtOcuNombres, ocupante));
		
		final EditText txtOcuApePater = (EditText) findViewById(R.id.txtOcuApePater);
		txtOcuApePater.addTextChangedListener(new RSTextWatcher(txtOcuApePater, ocupante));
		
		final EditText txtOcuApeMater = (EditText) findViewById(R.id.txtOcuApeMater);
		txtOcuApeMater.addTextChangedListener(new RSTextWatcher(txtOcuApeMater, ocupante));
		
		final EditText txtFechaNac = (EditText) findViewById(R.id.txtFechaNac);
		txtFechaNac.addTextChangedListener(new RSTextWatcher(txtFechaNac, ocupante));
		txtFechaNac.setOnClickListener(this);
		setTxtDate(txtFechaNac);
		
	}

	private void cargarListas() {
		cargarTipoParticipante();
		cargarTipoDocIdent();
		cargarSexo();
		cargarCondicion();
		cargarNosocomio();
	
	}

	private void cargarTipoParticipante() {
		cargarSpinner(R.id.cmbTipoPersona, "TBL_TIPOPARTICIPANTE", "id", "DTPARTICIPANTE");
	}

	private void cargarTipoDocIdent() {		
		cargarSpinner(R.id.cmbTipoDctoIdentidad, "TBL_TIPODOCUMENTO", "TDOCUMENTO", "DTDOCUMENTO");
	}

	private void cargarSexo() {
		
		List<BeanValorDescripcion> lsSexo = new ArrayList<BeanValorDescripcion>();
		
		BeanValorDescripcion sexoM = new BeanValorDescripcion();
		sexoM.setValor("1");
		sexoM.setDescripcion("Masculino");
		lsSexo.add(sexoM);
		
		BeanValorDescripcion sexoF = new BeanValorDescripcion();
		sexoF.setValor("2");
		sexoF.setDescripcion("Femenino");
		lsSexo.add(sexoF);
		
		ArrayAdapter<BeanValorDescripcion> adapter = 
			new ArrayAdapter<BeanValorDescripcion>(this, android.R.layout.simple_spinner_item, lsSexo);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		
		final Spinner spinner = (Spinner) findViewById(R.id.cmbSexo);
	    spinner.setAdapter(adapter);
	}

	private void cargarCondicion() {
		cargarSpinner(R.id.cmbCondicion, "TBL_CONDLICENCIA", "CONDLICENCIA", "DCONDLICENCIA");
	}

	private void cargarNosocomio() {
		cargarSpinner(R.id.cmbNosocomio, "tbl_nosocomios", " HospitalClinica", "NombreNosocomio");
	}

	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int pos,
			long id) {
		SQLiteCursor item = null;
		if(parent.getItemAtPosition(pos) instanceof SQLiteCursor)
		{
			item= (SQLiteCursor)parent.getItemAtPosition(pos);
		}
		if (parent.getId() == R.id.cmbTipoPersona)
		{
			setBeanValorDescripcion(ocupante.getTipo(), item);
		}
		else if (parent.getId() == R.id.cmbTipoDctoIdentidad)
		{
			setBeanValorDescripcion(ocupante.getTipoDocumento(), item);
		}
		else if (parent.getId() == R.id.cmbCondicion)
		{
			setBeanValorDescripcion(ocupante.getCondicion(), item);
		}
		else if (parent.getId() == R.id.cmbNosocomio)
		{
			setBeanValorDescripcion(ocupante.getNosocomio(), item);
		}
		else if (parent.getId() == R.id.cmbSexo)
		{
			BeanValorDescripcion sexo = (BeanValorDescripcion)parent.getItemAtPosition(pos);
			ocupante.setSexo(sexo);
		}
	}

	@Override
	public void onNothingSelected(AdapterView<?> parent) {
		
	}

	@Override
	public void onClick(View v) {
		if(v.getId() == R.id.txtFechaNac)
		{
			showDialog(DATEPICKER_POPUP);			
		}
	}
	
	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
	{
		if(buttonView.getId() == R.id.chkConductorAsegurado)
		{
			ocupante.setConductorAsegurado(getFlagCheckBox((CheckBox)buttonView));
		}
		else if(buttonView.getId() == R.id.chkHospitalizada)
		{
			ocupante.setHospitalizada(getFlagCheckBox((CheckBox)buttonView));
		}
	}
	
}
